package com.pumpkin.annotationdemo.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解
 */
public class Test03 {

    @MyAnnotation2
    public void test() {

    }

    @MyAnnotation3("")
    public void test2() {

    }
}

//自定义注解
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2 {
    //注解的参数：参数类型 + 参数名 ();
    String name() default "";
    int age() default 0;
    // -1代表不存在
    int id() default -1;
    String[] schools() default {"清华大学","北京大学"};
}

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3 {
    //只有当参数名称时value时，在使用注解时可以直接省略value
    String value();
}